{
char *e;
char *ep;
- vmem_realloc(¤t_tag, strlen(current_tag.mem) + 1 + strlen(el));
+ vmem_realloc(¤t_tag, strlen(current_tag.mem) + 2 + strlen(el));
e = current_tag.mem;
ep = e + strlen(e);
*ep++ = '/';
char **cdata;
xml_tag *tmp_tag;
- vmem_realloc(&cdatastr, len + strlen(cdatastr.mem));
+ vmem_realloc(&cdatastr, 1 + len + strlen(cdatastr.mem));
estr = (char *) cdatastr.mem + strlen(cdatastr.mem);
memcpy(estr, s, len);
+ estr[len] = 0;
if (!cur_tag)
return;
gpx_rd_init(const char *fname)
{
if ( fname[0] ) {
- fd = fopen(fname, "r");
+ fd = fopen(fname, "r");
if (fd == NULL) {
fatal(MYNAME ": Cannot open %s for reading\n", fname );
}
* Reallocate only if we must.
*/
if (size > vm->size) {
- vm->mem = xrealloc(vm->mem, size + 20);
+ vm->mem = xrealloc(vm->mem, size);
vm->size = size;
}
return;